#ifndef INIT_BINARIAGEN_CU
#define INIT_BINARIAGEN_CU

#include "../representaciones/binariaGen.cu"

__global__ void inicializarPoblacionBinariaGenManual(bool* poblacion, float* fitnessActualDevice, struct Random randomGPU, int cantCromosomasPoblacion, float* fitnessOrdenadoDevice, unsigned long* numerosAleatoriosInicializacion){
	int posCromosoma = blockIdx.y * cantGenesEnCromosomaDevice * 2;
	int posCromosoma2 = posCromosoma + cantGenesEnCromosomaDevice;
	for(int i = threadIdx.y; i < cantGenesEnCromosomaDevice; i = i + cantHilosBloqueDevice){
		//Obtengo posiciones a escribir.
		int posicionGen = posCromosoma + i;
		int posicionGen2 = posCromosoma2 + i;
		//Genero valor aleatorio.
		poblacion[posicionGen] = ((numerosAleatoriosInicializacion[posicionGen] % 2) == 1);
		poblacion[posicionGen2] = ((numerosAleatoriosInicializacion[posicionGen2] % 2) == 1);
	}
}

#endif
